Multimedia data on a pre-recorded optical storage medium, e.g. digital versatile disc (DVD), can belong to different applications, e.g. different video titles, games or the like. They are usually embedded into the programming structure of the medium as applications, which can be individually started.
For pre-recorded optical media it is however desirable to have well defined content appearance and user experience, e.g. interactivity, as well as sophisticated authoring possibilities. Java technology can meet these requirements, as it is independent of the underlying hardware and operating system, and provides a full-fledged programming environment including e.g. graphics and network interfaces. Java technology uses an execution unit called Java Virtual Machine (JVM) to execute so-called bytecode, which is retrieved from files that are called class files. They may be organized in libraries or packages. The JVM is specified as an abstract machine and can be understood as a separate software layer that requires processing unit hardware to be executed.
Different configurations and profiles exist for Java runtime environments within consumer electronics devices, wherein each profile is suitable for a certain type of devices. The main difference between different profiles is which libraries they support. Profiles like e.g. the “Personal Basis Profile” and the “Personal Profile” are more suitable for consumer electronics devices.
In the classical application model an application is either in the active or inactive state. Beyond this basic model, the mentioned profiles define an enhanced application model, called the “Xlet” application model, which allows fine-grained control over the lifecycle of an application. The system encompasses an “Application Manager” (AM), which is a software entity that controls the lifecycle of all running applications through a specific interface. E.g. the AM can load an application into a JVM, start and stop it.
Accordingly, an application is at any point in time in one of a number of lifecycle states, e.g. loaded, started or stopped. An application may change its lifecycle state by itself. The AM provides an application management interface (AMI), through which an application signals its state or state changes. Thus, the AM has at any time up-to-date information about the lifecycle state of all applications.